home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / compress / jrbzoo21.zoo / foo.c < prev    next >
C/C++ Source or Header  |  1991-09-25  |  815b  |  32 lines

  1. #define DICBIT    13    /* 12(-lh4-) or 13(-lh5-) */
  2. #define DICSIZ ((unsigned) 1 << DICBIT)
  3.  
  4. #define PERCOLATE  1
  5. #define NIL        0
  6. #define MAX_HASH_VAL (3 * DICSIZ + (DICSIZ / 512 + 1) * UCHAR_MAX)
  7.  
  8. typedef short node;
  9.  
  10. #define UCHAR_MAX 255
  11. static unsigned short *level;
  12. static node pos, matchpos, avail,
  13.     *position, *parent, *prev, *next;
  14. static void init_slide()
  15. {
  16.     node i;
  17.         unsigned short *l, *lh = &level[DICSIZ + UCHAR_MAX];
  18.         node *p;
  19.         for(l = &level[DICSIZ]; l < lh; ) *l++ = 1;
  20.     for (i = DICSIZ; i <= DICSIZ + UCHAR_MAX; i++) {
  21.         level[i] = 1;
  22. #ifdef PERCOLATE
  23.             position[i] = NIL;  /* sentinel */
  24. #endif
  25.     }
  26.     for (i = DICSIZ; i < DICSIZ * 2; i++) parent[i] = NIL;
  27.  
  28.     for (i = 1; i < DICSIZ - 1; i++) next[i] = i + 1;
  29.  
  30.     for (i = DICSIZ * 2; i <= MAX_HASH_VAL; i++) next[i] = NIL;
  31. }
  32.